/*
 * Code_comparer.h
 *
 *  Created on: 18-03-2012
 *      Author: czareq
 */

#ifndef CODE_COMPARER_H_
#define CODE_COMPARER_H_

#include "../minutia/Minutia_container.h"
#include  "../code/Finger_code.h"
#include  "../code/Crate_code.h"
#include  "../common/Config.h"

using namespace std;

class Code_comparer
{
private:
	double code_score;
	vector<int> best_match_cloud_score;
	vector<int> best_dis_match_cloud_score;
	vector<int> best_mis_match_cloud_score;
	vector<int> best_cloud_score;

	void compare_engine(Minutia_container, Minutia_container);
	void setup_cloud_score(int, int, int);
	void setup_code_score(int, int, int);
	void clear();
public:
	Code_comparer();
	~Code_comparer();
	double compare(Minutia_container, Minutia_container);
	vector<int> cloud_compare(Minutia_container, Minutia_container);
};

#endif /* CODE_COMPARER_H_ */
